Network diagnosis is directed towards the task of finding the root cause of faults observed in a network. The complexity of modern networks makes network diagnosis a difficult, frustrating, and time-consuming endeavor. As a result, various automatic tools have been developed to help system administrators diagnose faults.
However, due to the difficulty of the problem, automated tools do not always provide an accurate diagnosis. To complete the diagnostic task, system administrators still need to verify the output (i.e., probable causes) of the automated tools, and, when the output is incorrect, the administrators have to manually identify the correct cause. This is challenging because there is a large amount of data that has to be dealt with, using sophisticated analysis techniques. For example, the administrators need to access the underlying raw data (e.g., various health indicators of individual applications) in addition to the diagnostic engine's analysis.